/*
 * Copyright (c) 2000-2015 Tacke Consulting, Inc
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 
 * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions 
 * of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
 * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 * DEALINGS IN THE SOFTWARE.
 * 
 */
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Text;

namespace OpenNETCF.Media.DirectShow
{
    [ComImport]
    [Guid("56a868b4-0ad4-11ce-b03a-0020af0ba770")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    internal interface IVideoWindow
    {
        void put_Caption( [In, MarshalAs(UnmanagedType.LPWStr)] string strCaption);
        [return:MarshalAs(UnmanagedType.LPWStr)]
        string get_Caption();
        void put_WindowStyle([In]int WindowStyle);
        int get_WindowStyle();
        void put_WindowStyleEx([In]int WindowStyleEx);
        int get_WindowStyleEx();
        void put_AutoShow([In]int AutoShow);
        int get_AutoShow();
        void put_WindowState([In]int WindowState);
        int get_WindowState();
        void put_BackgroundPalette([In]int BackgroundPalette);
        int get_BackgroundPalette( );
        void put_Visible([In]int Visible);
        int get_Visible();
        void put_Left([In]int Left);
        int get_Left();
        void put_Width([In]int Width);
        int get_Width();
        void put_Top([In]int Top);
        int get_Top();
        void put_Height([In]int Height);
        int get_Height();
        void put_Owner([In]IntPtr Owner);
        IntPtr get_Owner();
        void put_MessageDrain([In]IntPtr Drain);
        IntPtr get_MessageDrain();
        uint get_BorderColor();
        void put_BorderColor([In]uint Color);
        int get_FullScreenMode();
        void put_FullScreenMode([In]int FullScreenMode);
        void SetWindowForeground([In]int Focus);
        void NotifyOwnerMessage([In] IntPtr hwnd, [In]int uMsg, [In]int wParam, [In]int lParam);
        void SetWindowPosition([In]int Left, [In]int Top, [In]int Width, [In]int Height);
        void GetWindowPosition([Out] out int pLeft, [Out] out int pTop, [Out] out int pWidth, [Out] out int pHeight);
        void GetMinIdealImageSize([Out] out int pWidth, [Out] out int pHeight);
        void GetMaxIdealImageSize([Out] out int pWidth, [Out] out int pHeight);
        void GetRestorePosition([Out] out int pLeft, [Out] out int pTop, [Out] out int pWidth, [Out] out int pHeight);
        void HideCursor([In]int HideCursor);
        void IsCursorHidden([Out] out int CursorHidden);
    };
}